// API相关的类型定义

// 博客相关类型
export interface Blog {
  id: string
  title: string //标题
  summary?: string //摘要
  mkContent: string // 正文
  categoryId: string //分类id
  category?: Category
  tags?: Tag[]
  categories?: Category[]
  topFlag: number //置顶标记
  status: number //状态 0-初始 1-发布 2-隐藏
  backgroundImg: string //背景图片地址
  pushTime: string //发布时间
  views: number //浏览量
  likes: number //点赞量
}

// 分类类型
export interface Category {
  id: string
  name: string
  pid?: string // 父分类ID
  color?: string // 分类颜色
  count?: number // 分类下的文章数量（包括子分类）
  currentCount?: number // 当前分类下的文章数量（不包括子分类）
  children?: Array<Category>
  createTime?: string // 创建时间
  updateTime?: string // 更新时间
}

// 标签类型
export interface Tag {
  id: string
  name: string
  color?: string // 标签颜色
  icon?: string // 标签图标
  count: number
  isSelected?: boolean
}

// 评论相关类型
export type BlogComment = Record<string, unknown>

export interface Comment {
  id: string
  blogId: string
  blogTitle?: string
  content: string
  createTime: string
  createUser?: number
  email: string
  ip?: string
  isDel?: number
  nickname: string
  reply?: number
  status?: number
  updateTime?: string
  updateUser?: number
}

// 时间线类型
export interface Timeline {
  id: string
  title: string //标题
  content: string // 内容
  date: string // 时间
}

// 微博类型
export interface Weibo {
  id: string
  content: string // 微博内容
  status: number // 状态 0-草稿 1-已发布 2-隐藏
  topFlag: number // 置顶标记 0-否 1-是
  createTime: string // 创建时间
  updateTime: string // 更新时间
  files: BlogFile[] // 附件列表
}

// 文件类型
export interface BlogFile {
  id: string
  originalName: string // 原始文件名
  fileName: string // 文件名
  filePath: string // 文件路径
  fileDate: string // 文件日期
  extension: string // 文件类型
  fileSize: number // 文件大小
  md5: string // MD5值
  url: string // 访问URL
  portalUrl: string // 门户URL
  createTime: string // 创建时间
}

// API参数类型
export interface BlogPageParam {
  categories?: string[] //分类id
  tags?: string[] //标签id
  keyword?: string //搜索关键字
  sort?: number //排序 1：发布时间正序 -1：发布时间倒序 2：阅读数正序 -2：阅读数倒序 3：点赞数正序 -3：点赞数倒序
  pageSize: number //每页条数
  pageNum: number //页码
}

export interface BlogTopListParam {
  title?: string
  tags?: string[]
}

export interface GetParam {
  id: string
}

export interface UserGetParam {
  id?: string
}

export interface WeiboPageParam {
  keyword?: string // 搜索关键字
  status?: number // 状态筛选
  pageSize: number // 每页条数
  pageNum: number // 页码
}

export interface BlogVisitSaveParam {
  blogId: string //博客id
  type: number //类型: 0-查看 1-点赞
}
